/**
 * ﻿Copyright (C) 2008 - 2014 52°North Initiative for Geospatial Open Source
 * Software GmbH
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 as published
 * by the Free Software Foundation.
 *
 * If the program is linked with libraries which are licensed under one of
 * the following licenses, the combination of the program with the linked
 * library is not considered a "derivative work" of the program:
 *
 *     - Apache License, version 2.0
 *     - Apache Software License, version 1.0
 *     - GNU Lesser General Public License, version 3
 *     - Mozilla Public License, versions 1.0, 1.1 and 2.0
 *     - Common Development and Distribution License (CDDL), version 1.0
 *
 * Therefore the distribution of the program linked with libraries licensed
 * under the aforementioned licenses, is permitted by the copyright holders
 * if the distribution is compliant with both the GNU General Public
 * icense version 2 and the aforementioned licenses.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 * Public License for more details.
 */
// 
// IMyCapability.java
// Wed May 21 15:24:25 CEST 2008
// Generated by the Apache Muse Code Generation Tool
// 
package org.n52.ses.api.ws;

import java.util.Date;

import javax.xml.namespace.QName;

import org.apache.muse.core.Resource;
import org.apache.muse.ws.addressing.EndpointReference;
import org.w3c.dom.Element;

/**
 * Interface for the register publisher method.
 *
 */
public interface IRegisterPublisher {
	
	/**
	 * standard prefix for XML QNames
	 */
    String PREFIX = "tns";

    /**
     * namespace for the register publisher operation name
     */
    String NAMESPACE_URI = "http://docs.oasis-open.org/wsn/b-2";

    /**
     * registers a publisher
     * 
     * @param PublisherReference endpoint reference of the publisher
     * @param Topic topic on which the publisher publishes
     * @param Demand <code>true</code>if the publisher is in "on demand" mode
     * @param InitialTerminationTime termination time for the publisher
     * @param domElem registration parameters in XML
     * @return XML response
     * @throws Exception if an error occurred on destroying
     */
    public Resource registerPublisher(EndpointReference PublisherReference, QName[] Topic, boolean Demand, Date InitialTerminationTime, org.w3c.dom.Element domElem) throws Exception;

	public void reRegisterPublisher(EndpointReference publisherReference,
			QName[] topic, boolean demand, Date initialTerminationTime,
			Element sensorML, IPublisherEndpoint publisherCapability);

}